<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 构造函数：提供一个公共的空间来存放 复杂数据类型（函数）；
      // 构造函数 constructor
      // 构造函数的调用：new 来调用；
      // 公共空间就是原型；
      function Person(name) {
        // let obj = {}  --->obj  === this;
        // let obj  ={};
        this.name = name;
        // return this;
      }
      Person.prototype.fn = function () {
        console.log("fn");
      };

      // new 调用函数 ：1.创建一个空对象。2.把创建的空对象和函数内的this绑定 3.隐式返还这个对象
      let zhangsan = new Person("张三");
      zhangsan.fn();
      let lisi = new Person("李四");
      lisi.fn();
      console.log(zhangsan.fn === lisi.fn);
    </script>
  </body>
</html>
